www.gusucode.com > matlab从零到进阶程序与数据 > matlab从零到进阶程序与数据/第22章 系统级仿真工具Simulink及应用/MagnetLev.m
function my_Plant=MagnetLev m=0.1; g=9.82; R=5; L=0.04; k=0.01; h0=0.02; i0=h0*sqrt(m*g/k); A=[0 1 0;2*k*i0^2/(m*h0^3) 0 -2*k*i0/(m*h0^2);0 0 -R/L]; B=[0;0;1/L]; C=[1 0 0]; D=0; my_Plant=ss(A,B,C,D); % MagPoles=pole(MagnetLev) % PD=tf(-1*[1 20],[1 50]); % rlocus(PD*MagnetLev); % sgrid % title('Root locus of PD Controller magnetic levitator'); % xlabel('Real axis'); % ylabel('Imaginary axis'); % % % rlocus(tf(-1*[1 20],[1 50])*MagnetLev) % rlocfind(tf(-1*[1 20],[1 50])*MagnetLev) % % PD=tf(-1*[1 20],[1 50]); % PI=tf([1 1],[1 0]); % [y,t]=impulse(feedback(150*PI*PD*MagnetLev,1)); % plot(t,y); % grid; % xlabel('Time'); % ylabel('Impulse response'); % title('Impulse response of a magnetic levitator');